/* 会话管理JS */

/**
 * 创建分页
 */
function generatePage(){
	
	// 判断是否有获取分页数据的权限
	if( window.hasAuthSearch == "true"){
		// 1.获取分页数据
		var pageInfo = getPageInfoRemote();

		// 2.填充表格
		fillTableBody(pageInfo);
		
		// 3.创建分页条
		generateNavigation(pageInfo);
		
		// 4.创建分页信息
		generatePageInfo(pageInfo);
	}
	
}

/**
 * 同步获取分页数据
 */
function getPageInfoRemote(){
	// 调用$.ajax()函数发送请求并接收它的返回值
	var ajaxResult = $.ajax({
		url: window.searchUrl,
		type: "GET",
		data: {
			pageNum: window.pageNum,
			pageSize: window.pageSize,
			keyword: window.keyword
		},
		async: false,
		dataType: "json"
	});
	
	// 判断当前响应状态码是否为200
	var statusCode = ajaxResult.status;
	
	// 请求失败
	if(statusCode != 200){
		layer.msg("服务器端程序调用失败！响应状态码="+statusCode+" 说明信息="+ajaxResult.statusText);
		return null;
	}
	
	// 如果请求成功，获取resultEntity
	var resultEntity = ajaxResult.responseJSON;
	
	// 从resultEntity中获取result属性
	var result = resultEntity.result;
	
	// 判断result是否成功
	if(result == "FAILED"){
		layer.msg(resultEntity.message);
		return null;
	}
	
	// 确认result为成功后获取pageInfo
	var pageInfo = resultEntity.data;
	
	// 返回pageInfo
	return pageInfo;
}

/**
 * 填充表格
 */
function fillTableBody(pageInfo){
	
	// 清除tbody中的旧的内容
	$("table tbody").empty();
	
	// 取消全选的选中状态
	$("#check_all").prop("checked", false);
	
	// 判断pageInfo对象是否有效
	if(pageInfo == null || pageInfo == undefined || pageInfo.list == null || pageInfo.list.length == 0){
		$("table tbody").append("<tr><td colspan='6' align='center'>抱歉！没有查询到您要的数据！</td></tr>");
		return ;
	}
	
	// 使用pageInfo的list属性填充tbody
	for (var i = 0; i < pageInfo.list.length; i++) {
		
		var session = pageInfo.list[i];
		
		var sessionId = session.SESSION_ID;
		
		var principalName = session.PRINCIPAL_NAME;
		
		var createTime = session.CREATION_TIME;
		
		var lastAccessTime = session.LAST_ACCESS_TIME;
		
		var numberTd = "<td>"+(i+1)+"</td>";
		
		var sessionIdTd = "<td>"+sessionId+"</td>";
		
		var nameTd = "<td>"+principalName+"</td>";
		
		var createTimeTd = "<td>"+createTime+"</td>";
		
		var lastAccessTimeTd = "<td>"+lastAccessTime+"</td>";
		
		var btnTd = "<td>"+"</td>";
		
		var tr = "<tr>" + numberTd + sessionIdTd + nameTd + createTimeTd + lastAccessTimeTd + btnTd + "</tr>";
		
		$("table tbody").append(tr);
	}
	
}

/**
 * 创建分页条
 */
function generateNavigation(pageInfo){
	
	// 清除Pagination中的旧的内容
	$("#Pagination").empty();
	
	// 判断pageInfo对象是否有效
	if(pageInfo == null || pageInfo == undefined || pageInfo.list == null || pageInfo.list.length == 0){
		$("table tfoot").hide();
		return ;
	}
	$("table tfoot").show();
	// 获取总记录数
	var totalRecord = pageInfo.total;
	
	// 创建分页条
	$("#Pagination").pagination(totalRecord, {
		num_edge_entries: 1, 											// 边缘页数
		num_display_entries: 4, 										// 主体页数
		items_per_page:pageInfo.pageSize, 	// 每页显示的条目数
		current_page:pageInfo.pageNum -1 , 	// 当前选中的页面
		prev_text:"上一页",												// “前一页”分页按钮上显示的文字
		next_text:"下一页",												// “下一页”分页按钮上显示的文字
		callback: paginationCallBack
	});
}

/**
 * 翻页时的回调函数
 */
function paginationCallBack(pageIndex, jQuery){
	// 修改分页的全局变量
	window.pageNum = pageIndex + 1;
	// 跳转页面
	generatePage();
	return false;
}

/**
 * 创建分页信息
 */
function generatePageInfo(pageInfo){
	// 判断pageInfo对象是否有效
	if(pageInfo == null || pageInfo == undefined || pageInfo.list == null || pageInfo.list.length == 0){
		return ;
	}
	$("#PageInfo").empty();
	$("#PageInfo").html('当前 <b>'+pageInfo.pageNum+'</b> 页'+
			'，总 <b>'+pageInfo.pages+'</b> 页'+
			'，总 <b>'+pageInfo.total+'</b> 条记录');
}

